export default (function () {
  "use strict";
  var t = 1e3,
    e = 6e4,
    n = 36e5,
    r = "millisecond",
    i = "second",
    s = "minute",
    u = "hour",
    a = "day",
    o = "week",
    c = "month",
    f = "quarter",
    h = "year",
    d = "date",
    l = "Invalid Date",
    $ =
      /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,
    y =
      /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,
    M = {
      name: "en",
      weekdays:
        "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
      months:
        "January_February_March_April_May_June_July_August_September_October_November_December".split(
          "_",
        ),
      ordinal: function (t) {
        var e = ["th", "st", "nd", "rd"],
          n = t % 100;
        return "[" + t + (e[(n - 20) % 10] || e[n] || e[0]) + "]";
      },
    },
    m = function (t, e, n) {
      var r = String(t);
      return !r || r.length >= e ? t : "" + Array(e + 1 - r.length).join(n) + t;
    },
    v = {
      s: m,
      z: function (t) {
        var e = -t.utcOffset(),
          n = Math.abs(e),
          r = Math.floor(n / 60),
          i = n % 60;
        return (e <= 0 ? "+" : "-") + m(r, 2, "0") + ":" + m(i, 2, "0");
      },
      m: function t(e, n) {
        if (e.date() < n.date()) return -t(n, e);
        var r = 12 * (n.year() - e.year()) + (n.month() - e.month()),
          i = e.clone().add(r, c),
          s = n - i < 0,
          u = e.clone().add(r + (s ? -1 : 1), c);
        return +(-(r + (n - i) / (s ? i - u : u - i)) || 0);
      },
      a: function (t) {
        return t < 0 ? Math.ceil(t) || 0 : Math.floor(t);
      },
      p: function (t) {
        return (
          { M: c, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t] ||
          String(t || "")
            .toLowerCase()
            .replace(/s$/, "")
        );
      },
      u: function (t) {
        return void 0 === t;
      },
    },
    g = "en",
    D = {};
  D[g] = M;
  var p = "$isDayjsObject",
    S = function (t) {
      return t instanceof _ || !(!t || !t[p]);
    },
    w = function t(e, n, r) {
      var i;
      if (!e) return g;
      if ("string" == typeof e) {
        var s = e.toLowerCase();
        D[s] && (i = s), n && ((D[s] = n), (i = s));
        var u = e.split("-");
        if (!i && u.length > 1) return t(u[0]);
      } else {
        var a = e.name;
        (D[a] = e), (i = a);
      }
      return !r && i && (g = i), i || (!r && g);
    },
    O = function (t, e) {
      if (S(t)) return t.clone();
      var n = "object" == typeof e ? e : {};
      return (n.date = t), (n.args = arguments), new _(n);
    },
    b = v;
  (b.l = w),
    (b.i = S),
    (b.w = function (t, e) {
      return O(t, { locale: e.$L, utc: e.$u, x: e.$x, $offset: e.$offset });
    });
  var _ = (function () {
      function M(t) {
        (this.$L = w(t.locale, null, !0)),
          this.parse(t),
          (this.$x = this.$x || t.x || {}),
          (this[p] = !0);
      }
      var m = M.prototype;
      return (
        (m.parse = function (t) {
          (this.$d = (function (t) {
            var e = t.date,
              n = t.utc;
            if (null === e) return new Date(NaN);
            if (b.u(e)) return new Date();
            if (e instanceof Date) return new Date(e);
            if ("string" == typeof e && !/Z$/i.test(e)) {
              var r = e.match($);
              if (r) {
                var i = r[2] - 1 || 0,
                  s = (r[7] || "0").substring(0, 3);
                return n
                  ? new Date(
                      Date.UTC(
                        r[1],
                        i,
                        r[3] || 1,
                        r[4] || 0,
                        r[5] || 0,
                        r[6] || 0,
                        s,
                      ),
                    )
                  : new Date(
                      r[1],
                      i,
                      r[3] || 1,
                      r[4] || 0,
                      r[5] || 0,
                      r[6] || 0,
                      s,
                    );
              }
            }
            return new Date(e);
          })(t)),
            this.init();
        }),
        (m.init = function () {
          var t = this.$d;
          (this.$y = t.getFullYear()),
            (this.$M = t.getMonth()),
            (this.$D = t.getDate()),
            (this.$W = t.getDay()),
            (this.$H = t.getHours()),
            (this.$m = t.getMinutes()),
            (this.$s = t.getSeconds()),
            (this.$ms = t.getMilliseconds());
        }),
        (m.$utils = function () {
          return b;
        }),
        (m.isValid = function () {
          return !(this.$d.toString() === l);
        }),
        (m.isSame = function (t, e) {
          var n = O(t);
          return this.startOf(e) <= n && n <= this.endOf(e);
        }),
        (m.isAfter = function (t, e) {
          return O(t) < this.startOf(e);
        }),
        (m.isBefore = function (t, e) {
          return this.endOf(e) < O(t);
        }),
        (m.$g = function (t, e, n) {
          return b.u(t) ? this[e] : this.set(n, t);
        }),
        (m.unix = function () {
          return Math.floor(this.valueOf() / 1e3);
        }),
        (m.valueOf = function () {
          return this.$d.getTime();
        }),
        (m.startOf = function (t, e) {
          var n = this,
            r = !!b.u(e) || e,
            f = b.p(t),
            l = function (t, e) {
              var i = b.w(
                n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t),
                n,
              );
              return r ? i : i.endOf(a);
            },
            $ = function (t, e) {
              return b.w(
                n
                  .toDate()
                  [
                    t
                  ].apply(n.toDate("s"), (r ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)),
                n,
              );
            },
            y = this.$W,
            M = this.$M,
            m = this.$D,
            v = "set" + (this.$u ? "UTC" : "");
          switch (f) {
            case h:
              return r ? l(1, 0) : l(31, 11);
            case c:
              return r ? l(1, M) : l(0, M + 1);
            case o:
              var g = this.$locale().weekStart || 0,
                D = (y < g ? y + 7 : y) - g;
              return l(r ? m - D : m + (6 - D), M);
            case a:
            case d:
              return $(v + "Hours", 0);
            case u:
              return $(v + "Minutes", 1);
            case s:
              return $(v + "Seconds", 2);
            case i:
              return $(v + "Milliseconds", 3);
            default:
              return this.clone();
          }
        }),
        (m.endOf = function (t) {
          return this.startOf(t, !1);
        }),
        (m.$set = function (t, e) {
          var n,
            o = b.p(t),
            f = "set" + (this.$u ? "UTC" : ""),
            l = ((n = {}),
            (n[a] = f + "Date"),
            (n[d] = f + "Date"),
            (n[c] = f + "Month"),
            (n[h] = f + "FullYear"),
            (n[u] = f + "Hours"),
            (n[s] = f + "Minutes"),
            (n[i] = f + "Seconds"),
            (n[r] = f + "Milliseconds"),
            n)[o],
            $ = o === a ? this.$D + (e - this.$W) : e;
          if (o === c || o === h) {
            var y = this.clone().set(d, 1);
            y.$d[l]($),
              y.init(),
              (this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d);
          } else l && this.$d[l]($);
          return this.init(), this;
        }),
        (m.set = function (t, e) {
          return this.clone().$set(t, e);
        }),
        (m.get = function (t) {
          return this[b.p(t)]();
        }),
        (m.add = function (r, f) {
          var d,
            l = this;
          r = Number(r);
          var $ = b.p(f),
            y = function (t) {
              var e = O(l);
              return b.w(e.date(e.date() + Math.round(t * r)), l);
            };
          if ($ === c) return this.set(c, this.$M + r);
          if ($ === h) return this.set(h, this.$y + r);
          if ($ === a) return y(1);
          if ($ === o) return y(7);
          var M = ((d = {}), (d[s] = e), (d[u] = n), (d[i] = t), d)[$] || 1,
            m = this.$d.getTime() + r * M;
          return b.w(m, this);
        }),
        (m.subtract = function (t, e) {
          return this.add(-1 * t, e);
        }),
        (m.format = function (t) {
          var e = this,
            n = this.$locale();
          if (!this.isValid()) return n.invalidDate || l;
          var r = t || "YYYY-MM-DDTHH:mm:ssZ",
            i = b.z(this),
            s = this.$H,
            u = this.$m,
            a = this.$M,
            o = n.weekdays,
            c = n.months,
            f = n.meridiem,
            h = function (t, n, i, s) {
              return (t && (t[n] || t(e, r))) || i[n].slice(0, s);
            },
            d = function (t) {
              return b.s(s % 12 || 12, t, "0");
            },
            $ =
              f ||
              function (t, e, n) {
                var r = t < 12 ? "AM" : "PM";
                return n ? r.toLowerCase() : r;
              };
          return r.replace(y, function (t, r) {
            return (
              r ||
              (function (t) {
                switch (t) {
                  case "YY":
                    return String(e.$y).slice(-2);
                  case "YYYY":
                    return b.s(e.$y, 4, "0");
                  case "M":
                    return a + 1;
                  case "MM":
                    return b.s(a + 1, 2, "0");
                  case "MMM":
                    return h(n.monthsShort, a, c, 3);
                  case "MMMM":
                    return h(c, a);
                  case "D":
                    return e.$D;
                  case "DD":
                    return b.s(e.$D, 2, "0");
                  case "d":
                    return String(e.$W);
                  case "dd":
                    return h(n.weekdaysMin, e.$W, o, 2);
                  case "ddd":
                    return h(n.weekdaysShort, e.$W, o, 3);
                  case "dddd":
                    return o[e.$W];
                  case "H":
                    return String(s);
                  case "HH":
                    return b.s(s, 2, "0");
                  case "h":
                    return d(1);
                  case "hh":
                    return d(2);
                  case "a":
                    return $(s, u, !0);
                  case "A":
                    return $(s, u, !1);
                  case "m":
                    return String(u);
                  case "mm":
                    return b.s(u, 2, "0");
                  case "s":
                    return String(e.$s);
                  case "ss":
                    return b.s(e.$s, 2, "0");
                  case "SSS":
                    return b.s(e.$ms, 3, "0");
                  case "Z":
                    return i;
                }
                return null;
              })(t) ||
              i.replace(":", "")
            );
          });
        }),
        (m.utcOffset = function () {
          return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
        }),
        (m.diff = function (r, d, l) {
          var $,
            y = this,
            M = b.p(d),
            m = O(r),
            v = (m.utcOffset() - this.utcOffset()) * e,
            g = this - m,
            D = function () {
              return b.m(y, m);
            };
          switch (M) {
            case h:
              $ = D() / 12;
              break;
            case c:
              $ = D();
              break;
            case f:
              $ = D() / 3;
              break;
            case o:
              $ = (g - v) / 6048e5;
              break;
            case a:
              $ = (g - v) / 864e5;
              break;
            case u:
              $ = g / n;
              break;
            case s:
              $ = g / e;
              break;
            case i:
              $ = g / t;
              break;
            default:
              $ = g;
          }
          return l ? $ : b.a($);
        }),
        (m.daysInMonth = function () {
          return this.endOf(c).$D;
        }),
        (m.$locale = function () {
          return D[this.$L];
        }),
        (m.locale = function (t, e) {
          if (!t) return this.$L;
          var n = this.clone(),
            r = w(t, e, !0);
          return r && (n.$L = r), n;
        }),
        (m.clone = function () {
          return b.w(this.$d, this);
        }),
        (m.toDate = function () {
          return new Date(this.valueOf());
        }),
        (m.toJSON = function () {
          return this.isValid() ? this.toISOString() : null;
        }),
        (m.toISOString = function () {
          return this.$d.toISOString();
        }),
        (m.toString = function () {
          return this.$d.toUTCString();
        }),
        M
      );
    })(),
    k = _.prototype;
  return (
    (O.prototype = k),
    [
      ["$ms", r],
      ["$s", i],
      ["$m", s],
      ["$H", u],
      ["$W", a],
      ["$M", c],
      ["$y", h],
      ["$D", d],
    ].forEach(function (t) {
      k[t[1]] = function (e) {
        return this.$g(e, t[0], t[1]);
      };
    }),
    (O.extend = function (t, e) {
      return t.$i || (t(e, _, O), (t.$i = !0)), O;
    }),
    (O.locale = w),
    (O.isDayjs = S),
    (O.unix = function (t) {
      return O(1e3 * t);
    }),
    (O.en = D[g]),
    (O.Ls = D),
    (O.p = {}),
    O
  );
})();
